第16天的主題是繼續介紹MQTT,我們將探討如何使用Docker來搭建MQTT Broker。在這篇文章中,我們將一步步引導您如何使用Docker來搭建自己的MQTT Broker。
首先,您需要確保您的系統已經安裝了 Docker 。您可以根據您的操作系統選擇合適的Docker安裝方法。
打開終端或命令提示符,運行以下命令來下載Mosquitto的Docker鏡像:
docker pull eclipse-mosquitto
新增以下路徑 C:\mosquitto\config
並且分別新增下列三個 .conf
檔:
allow_anonymous false //是否允許匿名連接到 broker
password_file /mosquitto/config/passwd //存放帳密的位置
listener 1883 //Port 為1883
protocol mqtt //服務為 MQTT
chocolee:$7$101$StNq9H9L0tuD0Zco$vlq03RzIABBRb+LBiDiphH+aSvDJQKxJaEk2NjNkvOfJsKzgYBloQJg2ZvbKkNaWtq5YiVch/X05F/3oQfNKrg==
user chocolee
topic readwrite demo/#
這裡將 config 檔掛載到 containers 裡的 config 檔
docker run -d --name mosquitto -p 9001:1883 -v C:/mosquitto/config:/mosquitto/config eclipse-mosquitto
設定對應的變數就可以使用了。
private String brokerUrl = "tcp://192.168.1.118:9001";//你連的 wifi 的 ip
private String clientId = "mqttx_01fa1dad";
String username = "chocolee"; // 你的用户名
String password = "123"; // 你的密码
try {
// Set up the persistence layer
MemoryPersistence persistence = new MemoryPersistence();
// Initialize the MQTT client
client = new MqttClient(brokerUrl, clientId, persistence);
// Set up the connection options
MqttConnectOptions connectOptions = new MqttConnectOptions();
connectOptions.setCleanSession(true);
connectOptions.setUserName(username);
Log.e("TAG", "connect: " + Arrays.toString(password.toCharArray()));
connectOptions.setPassword(password.toCharArray());
// Connect to the broker
client.connect(connectOptions);
最後來看看 MQTTX 的測試解果!!